Techniques for enhancing a member profile with a document reading history

ABSTRACT

Disclosed in some examples is a method of providing a bookmarking service on a social networking service, the method including receiving, over a network, an indication that a member of the social networking service interacted with an item of content; associating the item of content with a skill using a computer processor; and storing an indication in a storage device that the member interacted with the item of content and the skill associated with the item of content.

COPYRIGHT NOTICE

A portion of the disclosure of this patent document contains materialthat is subject to copyright protection. The copyright owner has noobjection to the facsimile reproduction by anyone of the patent documentor the patent disclosure, as it appears in the Patent and TrademarkOffice patent files or records, but otherwise reserves all copyrightrights whatsoever. The following notice applies to the software and dataas described below and in the drawings that form a part of thisdocument: Copyright LinkedIN, All Rights Reserved.

BACKGROUND

A social networking service is a computer or web-based application thatenables users to establish links or connections with persons for thepurpose of sharing information with one another. Some social networksaim to enable friends and family to communicate with one another, whileothers are specifically directed to business users with a goal ofenabling the sharing of business information.

BRIEF DESCRIPTION OF THE DRAWINGS

In the drawings, which are not necessarily drawn to scale, like numeralsmay describe similar components in different views. Like numerals havingdifferent letter suffixes may represent different instances of similarcomponents. The drawings illustrate generally, by way of example, butnot by way of limitation, various embodiments discussed in the presentdocument.

FIG. 1A shows a flowchart of a method of determining the content itemsinteracted with by members according to some examples of the presentdisclosure.

FIG. 1B shows a flowchart of a method of determining the content itemsinteracted with by members according to some examples of the presentdisclosure.

FIG. 2 shows a flowchart of a method of providing a bookmarking serviceon a social networking service according to some examples of the presentdisclosure.

FIG. 3 shows a schematic of a social networking system and computingdevices according to some examples of the present disclosure.

FIG. 4 shows a screenshot according to some examples of the presentdisclosure.

FIG. 5 shows a screenshot according to some examples of the presentdisclosure.

FIG. 6 shows a screenshot according to some examples of the presentdisclosure.

FIG. 7 shows a screenshot according to some examples of the presentdisclosure.

FIG. 8 shows a schematic of a machine according to some examples of thepresent disclosure.

DETAILED DESCRIPTION

In the following, a detailed description of examples will be given withreferences to the drawings. It should be understood that variousmodifications to the examples may be made. In particular, elements ofone example may be combined and used in other examples to form newexamples.

Many of the examples described herein are provided in the context of asocial or business networking website or service. However, theapplicability of the inventive subject matter is not limited to a socialor business networking service. A social networking service is an onlineservice, platform or site that allows members to build or reflect socialnetworks or social relations among members. Typically, members constructprofiles, which may include personal information such as name, contactinformation, employment information, photographs, personal messages,status information, links to web-related content, blogs, and so on.Typically, only a portion of a members profile may be viewed by thegeneral public, and/or other members.

The social networking site allows members to identify, and establishlinks or connections with other members in order to build or reflectsocial networks or social relations among members. For instance, in thecontext of a business or professional networking service (a type ofsocial networking service), a person may establish a link or connectionwith his or her business contacts, including work colleagues, clients,customers, and so on. With a social networking service, a person mayestablish links or connections with his or her friends and family. Aconnection is generally formed using an invitation process in which onemember “invites” a second member to form a link. The second member thenhas the option of accepting or declining the invitation.

In general, a connection or link represents or is otherwise associatedwith an information access privilege, such that a first person who hasestablished a connection with a second person is, via the establishmentof that connection, authorizing the second person to view or accessnon-publicly available portions of their member profiles. Of course,depending on the particular implementation of the business/socialnetworking service, the nature and type of the information that may beshared, as well as the granularity with which the access privileges maybe defined to protect certain types of data may vary greatly.

The growth of social networks means that many people spend a lot of timelogged into social networks. This makes the social networking service anideal platform for the storage of important user information. Forexample, the member may wish to have a centralized location to storeimportant user data that then may be shared (on a limited or unlimitedbasis) with other members. For example, a member may wish to save linksand information on content items they are interested in. These“bookmarks” may enable users to quickly navigate to content that is ofinterest, among other uses.

Disclosed in some examples are methods, systems, and machine-readablemedia which provide a bookmarking service associated with a socialnetworking service. Members of the social networking service may createbookmarks of various items of content that they interact with on theInternet or another computer network. These bookmarks may then beavailable to the user at the social networking site to allow convenientaccess to these content items. These bookmarks may also be shared withother members, including connections. For example, a member may wish tosee what content a connection has been interacting with, or getrecommended content items.

These bookmarks may also tie into other features of the socialnetworking service. For example, some social networks create skillcommunities, which consist of a group of members who the systemrecognizes as possessing certain skills. The social networking servicesimplementing these skill communities may automatically create a list ofskills based on information in the profile's of its members. Once thelist of available skills is created, the system may group members intoskill communities based upon self reporting of skills, skills inferredby the system based upon information in member profiles, or both. Insome examples, the bookmarks may be tied into these skill communities.For example, when a user bookmarks a particular item of content, thesystem may analyze the item of content and automatically associate oneor more of the skills from the list of skills to that content item basedon a likelihood that the content item is related to a topic in thatskill. The bookmarks may then be used as signals to determine thingssuch as one or more of: potential skills a member is interested in, askill interest level, a skill aptitude, or the like.

The formation and use of such skill communities is described in U.S.patent application Ser. No. 13/357,171 filed on Jan. 24, 2012 toSkomoroch et. al and entitled “SKILL EXTRACTION SYSTEM,” which is herebyincorporated by reference in its entirety. This application describesthe formalization of a standardized list of skills from information inmember profiles including free text descriptions of skills. Alsodescribing formation and use of skill communities includes U.S. patentapplication Ser. No. 13/357,302 filed on Jan. 24, 2012 to Skomoroch et.al. and entitled “SKILL RANKING SYSTEM,” which is hereby incorporated byreference in its entirety, and U.S. patent application Ser. No.13/357,360 filed on Jan. 24, 2012 to Skomoroch et. al. and entitled“SKILL CUSTOMIZATION SYSTEM,” which is hereby incorporated by referencein its entirety. Suggesting a skill based upon information inferred froma member's profile is described in U.S. patent application Ser. No.13/629,241 filed on Sep. 27, 2012 to Bastian, et al. entitled “Inferringand Suggesting Attribute Values for a Social Networking Service,” whichis hereby incorporated by reference in its entirety.

The association between the content the user is interested in and theskills those members possess allows the system to enhance the socialnetworking experience in a variety of ways. For example, the system maypresent article recommendations for members with a certain skill basedon popular articles associated with that skill that other members havebookmarked. The system may sort a user's bookmarks by skill for enhancedorganization of the bookmarks. In some examples, the system may eventailor the skills experience by increasing a member's skill rankingbased on information about the content they interact with. In yet otherexamples, the information may allow the system to foster increasedadoption of skill communities by suggesting a member add a skill totheir profile based on their content interests, or the like.

Both manual and automatic collection of information regarding thecontent members are interacting with is contemplated. For descriptiveconvenience the term “bookmarking” may refer to both manual exampleswhere members indicate their interactions with the content item manually(e.g., clicking on a bookmark button)—and examples in which the systemautomatically reports interactions of members with the content itemswithout explicit user intervention. The term “bookmark” may refer to theinformation collected about the member's interaction with the content.

Content items may be or include: articles, technical journals, websites,videos, presentations, streaming content, audio content, or the like.Content items may be any portion of content which may containinformation related to a particular skill. Content items may beinteracted with in a variety of ways including reading, commenting on,writing, posting, viewing, listening, highlighting, copying, pasting, orthe like.

A bookmark may be or include bibliographic information such as title,author, publisher, and information on how to locate the content item.For example, the bookmark may include a Uniform Resource Identifier(URI), a Uniform Resource Locator, or both. This location informationmay allow for the easy access of that content (e.g., through ahyperlink) later. Bookmarks may be sorted (e.g., sorted by skill, bydate, by time, by member, or the like), shared with other members (e.g.,a social bookmark), rated, commented upon, or the like. In some examplesthe bookmarks may only be shared with a member's connections, in otherexamples the bookmarks may only be shared with other members with skillsidentified in their profiles that match skills associated with thecontent item. In other examples the bookmarks may only be shared byconnections that have skills identified in their profiles that matchskills associated with the content item.

The system may receive information on content interacted with by membersin a number of different ways. In some examples, the system may receivethis information from an application the member installs. Thisapplication may take many forms. However, for ease of description, theapplication which executes on the client side, regardless of form, maybe referred to herein as the bookmark application.

In one example the bookmark application may take the form of a “readerapplication.” A reader application (or “app”) may be an applicationintegrated into a browser which may generate an alternative presentationof the content displayed by the browser. The presentation of the readerapp is typically a cleaner form without banner ads, extraneous text, orother distractions that may be present on the browser's contentpresentation. The content presentation provided by the reader app may beselected through an option in the browser. In some examples, the socialnetworking service may provide a reader app which may automatically sendinformation on the content items to the social networking service, mayprompt the user automatically to ask if they want to send information oncontent items they are interacting with to the social networkingservice, or contain an integrated button or other option that allowsusers to easily send the content information to the social networkingservice.

In other examples, the bookmark application may take the form of a“bookmark let app.” In some examples, a bookmarklet app may be aJavaScript that may be executed by clicking a browser bookmark. In otherexamples, the bookmark application may be a browser plug in, which mayadd an option in the browser which may allow users to explicitly sendthe content information to the social networking service. For example,the bookmark app may take the form of a toolbar which may appearanywhere on the browser or webpage and allow users to click on it tobookmark the content. In yet other examples, the bookmark applicationmay be a standalone app—independent of the browser, which may executeany of the aforementioned functionality associated with the reader orthe bookmark let app.

By bookmarking the content the bookmark app sends the contentinformation to the social networking service. In some examples, thebookmark application may automatically send information on the contentitems to the social networking service or may prompt the userautomatically to ask if they want to send information on the contentitems they are interacting with to the social networking service.

In still other examples, the bookmark application may be the browseritself, which may communicate with the social networking service toallow the social networking service to obtain the member's browsinghistory when the member visits the social networking service. The systemmay analyze those content items that have been visited since the userlast visited the social networking service. In some examples, internetbrowsers may not support transferring browsing history to an internetsite, in which case a browser plug-in may be offered to members in orderto enable this functionality.

In some examples, the bookmark application may attempt to validate thatthe user has actually interacted with a particular piece of content (asopposed to simply visiting the URL of the content). For example, thebookmark application may only record, or allow a member to record that aparticular content item was read if that particular content item wasopen on the user's computing device for a threshold amount of time. Infurther examples, the threshold may be adjusted based upon the size ofthe content item. Thus the threshold may be adjusted so that longerarticles require larger time amounts spent viewing the content item inorder to be considered “read” or otherwise interacted with. This may beimplemented in order to prevent members from cheating by visiting anumber of sites but not actually interacting with the content to inflatetheir social status. Other forms of validation may be utilized. Forexample, the browser may detect whether or not a user has scrolled tothe bottom of the page on which the content item is displayed, orclicked on links to request multiple pages of a multiple page contentitem. In other examples, other types of content may also have thesethresholds. For example, for video or audio content, the system mayrequire playback of a certain threshold percentage of the content.

Once the information about the various content items interacted with bymembers reaches the social networking service, the social networkingservice may determine which skills the content item relates to by usingautomatic analysis. For example, the text of an article may beautomatically analyzed to determine which skills the article relates to.

In one example method, a set of training articles may be manually taggedwith associated skills. These articles may then be analyzed to determineimportant keywords associated with the tagged skills. For example, aterm-inverse document frequency (tf-idf) may be computed for each termin the document. The tf-idf is a numerical statistic which reflects howimportant a word is to a document in a collection or corpus. The tf-idfvalue increases proportionally to the number of times a word appears inthe document, but is offset by the frequency of the word in the corpus.In this example, the tf-idf ranks how important certain terms are to thecorpus of documents manually tagged with a particular skill. Forexample, the system may save the top 50 terms as determined by tf-idfand the training data. These top 50 terms would be expected to show upin an article or other content item associated with the tagged skill.

This training data may then be used when comparing a new article that isnot already tagged. For example, the system may count each term in a newarticle to determine the top terms in the article. These top terms maythen be compared with top terms associated with skills in the system. Ifenough of the top terms in the content item appear in the top termsassociated with the skills in the system (e.g., above a threshold valueor percentage) the content item may be tagged with that skill. Anarticle may be tagged with more than one skill.

Other classification algorithms may be used to automatically associatecontent items with skills, for example, expectation maximizationalgorithms, naïve Bayes classifiers, latent semantic indexing, supportvector machines, artificial neural networks, K-nearest neighboralgorithms, or the like.

Once a document has been associated with a particular skill, thetraining data (e.g., the top terms associated with an algorithm) may beupdated to reflect the new information. Thus the system may adapt tochanges in the terminology used in the skill or interest as it changesover time. Once a particular document is tagged with skills, the systemmay store information on the document (URL and/or other bibliographicalinformation) and subsequent accesses by other members will not cause thesystem to retag the document. The system may also incorporate memberfeedback about the skill associations. For example, a member mayindicate that a particular content item is not related to a particularskill. This information may then be used to adjust the weight of theparticular terms used in the content item.

In other examples, the system may determine the set of skills toassociate with the content item by considering the skills of the memberswho are interacting with that content item. Skills that have a highnumber of members with that skill interacting with that content item maybe associated with that content item. For example, if a particular videowas heavily interacted with by members who have a computer programmingskill, the video may be associated with the computer programming skill.In this way, the unique data of the social networking service may allowfor the classification of the content item without actually basing theclassification on the actual content of the content item.

The bookmarks and the skills associated with those items may be used ina variety of ways to enhance the social networking system. For example,the member may see a history of all the bookmarks and the skillsassociated with those items. The member may be able to sort thebookmarks by skills. Additionally, various statistics may be presentedto the member, such as the percentage of content that relate to aparticular skill or the like. This information may also use, and haveimplications on, data of other members who share similar skills. Forexample, the member may be able to see, or be recommended, the top orrecently trending content items for specific skills.

The information may be used to generate a composite score of the personwhich may indicate the member's scholarly activity. This score may thenbe displayed to the member along with comparison information to give themember a sense of how they rate compared with other members of theskill.

The information may be used to assist recruiters in finding qualifiedjob applications that meet their needs. For example, the recruiter maysee the list of content items the member has viewed recently and theskills associated with those content items. The recruiter may be able tofilter candidates based on their proficiency for viewing content relatedto one or more skills of interest. For example, the recruiter may searchfor candidates whose composite scores are above a specified threshold inone or more skills.

The information may also be used in the skill ranking algorithms as asignal. In these examples, a user's proficiency in a particular skillmay be adjusted up or down based upon their proficiency in interactingwith content associated with that skill. The information may also beused to suggest skills to members. For example, if a member is heavilyinteracting with content associated with a particular skill yet themember has not added that skill to their profile, the system may suggestthat they add the skill to their profiles.

In some examples, the composite score of the member (which is a signalof their scholarly activity) may be used to determine endorsementstrength. In some social networks, members may endorse the skills ofother members. The endorsement is an affirmation that the endorseemember has that skill. The endorsements may also be signals into howwell a person knows a skill (e.g., the more endorsements the more likelythe person has the skill). However, each endorsement may be weightedsuch that endorsements that come from individuals who have highercomposite scores (e.g., interact with more content in that skill area)may count more than endorsements from lower scoring members.

Turning now to FIG. 1A, an example method 1000 of determining thecontent items interacted with by members is shown. In this example, themember downloads a bookmark application (e.g., a plug-in, a readerapplication, or the like) on their computing devices which allows themto manually indicate which content items they have been interactingwith. Once the application or plug-in is installed, the member may visitthe internet URL of the content item, or otherwise load a content iteminto memory of their computing device (e.g., the application may allowfor tracking more than web based content) at operation 1010. Atoperation 1020 the member may interact with the content. As previouslydescribed the interaction may include reading content, viewing content,listening to content, authoring content, commenting on the content, orany combination thereof. At operation 1030 the member may manuallyindicate the interaction with the content (e.g., bookmark the content)and the bookmarking app receives this indication. The application mayrecord bibliographic information (e.g., author, title, URL, or the like)about the content, or may record the content itself (or a portion ofit). This information (bibliographic information, content, or both) maybe transmitted to the social networking service at operation 1040. Aspreviously explained, in some examples the application may also haveoperations that implement basic validity checking on the member'sassertion that they have interacted in particular ways with the content.For example, if the member is asserting that they have read the content,the application may verify that the member has had the item on theirscreen for a particular threshold amount of time.

Turning now to FIG. 1B, another example method 1045 of obtaininginteraction information is shown. In this example, the bookmarks (e.g.,the information on the content interactions) are automatically created.At operation 1050 the member visits a particular internet sitedisplaying the content item. At operation 1060 the member interacts withthat content. By visiting the internet site and by interacting with thecontent, the member's internet browser may store a history of that visit(or as previously described, a member's browser may have a plug-in orother application that facilitates this). At operation 1070, the usermay visit the social networking site. At operation 1080, the socialnetworking service may communicate with the browser to download thebrowser's history. At operation 1090 the social networking service maydetermine from the browser history and any past history which contentitems have been interacted with since the last visit to the socialnetworking service at operation 1090. While the example shown in FIG. 1downloaded the browser's history upon the user's visit to the socialnetworking service, in other examples this may occur at a predeterminedtime, or a predetermined interval and not require an explicit visit tothe social networking service.

Turning now to FIG. 2 an example method 2000 of a bookmarking serviceoperating on a social networking service is shown. At operation 2010 theservice may receive an indication from a member that a new item ofcontent was interacted with. The service may also receive informationabout that content (e.g., bibliographic information). At operation 2020the social networking service uses the content information, and in someexamples, the content (or a sample of the content) which was sent by theuser in operation 2010 to determine if the social networking service hasalready identified skills associated with that content at operation2020. If the social networking service has already identified the skillsassociated with that content, then the social networking service storesan indication that the particular member interacted with the content andthe skills associated with the content at operation 2030. In oneexample, this may be indicated in the member's profile. If the contentitem is not already associated with skills, the social networkingservice may retrieve the content item at operation 2040 (unless it wasalready provided by the user at operation 2010). At operation 2050 thevarious skills may be associated with the content item as previouslydescribed. At operation 2060 the information regarding the content itemand the skills which are associated with that content item may be storedin a data store of the social networking service. Once the article isassociated with those skills, the system may store an indication (aspreviously discussed) that the member interacted with the content atoperation 2030.

FIG. 3 shows an example system 3000 for providing a social networkingservice and for providing content bookmarking features. Socialnetworking service 3010 may contain a content server process 3020.Content server process 3020 may communicate with storage 3030 and maycommunicate with one or more users 3040 through a network 3050. Contentserver process 3020 may be responsible for the retrieval, presentation,and maintenance of member profiles stored in storage 3030. Contentserver process 3020 in one example may include or be a web server thatfetches or creates internet web pages. Web pages may be or include HyperText Markup Language (HTML), eXtensible Markup Language (XML),JavaScript, or the like. The web pages may include portions of, or allof, a member profile at the request of users 3040.

Users 3040 may include one or more members, prospective members, orother users of the social networking service 3040. Users 3040 may accesssocial networking service 3010 through network 3050 using a computersystem or device 3052. The network may be any means of enabling thesocial networking service 3010 to communicate data with users 3040.Example networks 3050 may be or include portions of: the Internet, aLocal Area Network (LAN), a Wide Area Network (WAN), wireless network(such as a wireless network based upon an IEEE 802.11 family ofstandards), a Metropolitan Area Network (MAN), a cellular network, orthe like.

Users may access the features of the social networking device and takeadvantage of the bookmarking features through computing device 3052.Computing device 3052 can be any computing device including mobiledevices such as smartphones, tablet computing devices, laptops,desktops, servers, or any other electronic device capable ofcommunicating with content server process over network 3050. Thecomputing device 3052 may execute a browser 3054 which may load anddisplay web pages, such as those delivered from content server process3020 of social networking service. Computing device 3052 may alsocontain a bookmark application. In some examples, this application maytake the form of a browser plugin, script, or other code moduleexecuting within browser 3054. For example, plug-in or script 3056.Plug-in or script 3056 may include features which enable the skillsbookmarking features described herein. For example, plug-in 3056 mayinclude an input/output module 3058. Input/output module 3058 maydisplay one or more prompts on the display and receive user input from auser which may allow users to enter input which may report one or morecontent items interacted with. In some examples, the plug-in 3056 maycontain a monitoring module 3059 which may automatically monitor theuser's browsing history and periodically transmit the information oncontent the user has interacted with to the communication module 3070 ofsocial networking service through communication module 3060 of theplugin 3056. Communication module 3060 of plugin 3056 may communicatewith communication module 3070 of social networking service 3010 totransfer information on content items. While the modules 3058, 3059, or3060 are shown as part of plugin or script 3056, in other examples, thefunctionality of these modules may be executed by browser 3054. Forexample, communication module 3070 may directly receive the browsinghistory through one or more communications with browser 3056. In otherexamples, the computing device 3052 may implement the social bookmarkingfeatures through an application which is independent of the browser andplug-in. This application may implement the functionality of displaymodule 3058, monitoring module 3059 and communication module 3060. Insome examples the application, browser, or plugin may have all of themodules 3058, 3059, and 3060, but in other examples, the application,browser, or plugin may have only a subset of those modules.

Communication module 3070 may communicate with communication module 3060of plugin 3056 or the stand alone application through network 3050. Thecommunication module may receive one or more reports of content itemsthat were interacted with by various members. These reports may includeall of, or portions of, the content, bibliographic information (in someexamples, including a URI or URL), and member information identifyingthe member. In other examples the communication module 3070 may receivea browser history and may determine (based on previously storedinformation in the storage 3030) which content is newly visited. Oncethese reports are received, the newly interacted-with content is passedto the content processing module where it is determined if the contentis associated with skills. If the content is not already associated withskills, the content is then associated with skills. If the content isalready associated with skills the skills that are associated with thecontent may be retrieved from storage 3030. The skills that areassociated with the content as well as the information on the contentmay be stored in the storage 3030 and associated with the member.

Customization module 3090 may provide one or more customization featuresbased on the content identified as interacted with by the user orsystem. For example, the customization module 3090 may create pages onthe social networking service which may show a member the content theyinteracted with, alter skill rankings and ratings, create skillbookmarking statistics for presentation to various users (e.g., topcontent items by skill, content recommendations based on member skills,or the like), or implement other customization features.

Turning now to FIG. 4 an example of a bookmarklet app 4020 is shownoverlaid over a browser window displaying an item of content 4010. Theapp toolbar may include a text entry box 4030 that members may use tomanually tag skills to the items of content, or the text box 4030 may bestatic and may show the skill association (e.g., the bookmarklet app maycommunicate the information on the content item with the socialnetworking service to retrieve the social networking service's skillassociation to preview this to the user before they decide to bookmarkit). The drop down box 4040 may allow users to categorize the bookmarkbased on type of content or some other criteria. This may allow for usercategorization later. The “read it” button 4050 may be clicked when theuser wishes to save this as a bookmark.

FIG. 5 shows a screenshot of an example confirmation screen which allowsmembers to confirm that they have actually interacted with the content.This may be particularly useful for the automatic collection examples,but may also be used for examples in which the user manually indicatesthat they have interacted with particular items of content.

FIG. 6 shows a screenshot of an example bookmark page on the socialnetworking service. It shows various statistics 6010 showing the totalnumber of content items interacted with, blog posts read, Q&A read,presentations read, whitepapers read, tutorials and publications read,and the like. This can be filtered by time (overall, this year, thismonth, this week) using buttons 6015. The screenshot shows a bar graph6020 showing the content items by skill (e.g., content items relating tothe Java skill are the most frequently interacted with). In addition,the various skills of the articles may appear as tabs 6025 which whenselected display the content items associated with those tabs 6030.

FIG. 7 shows a screenshot of an example bookmark feed in which recentcontent items that have been bookmarked by members is displayed. Thismay be for the member's own benefit, or may be visible by other members.

These examples can be combined in any permutation or combination. Thisoverview is intended to provide an overview of subject matter of thepresent patent application. It is not intended to provide an exclusiveor exhaustive explanation of the invention. The detailed description isincluded to provide further information about the present patentapplication.

Modules, Components and Logic

Certain embodiments are described herein as including logic or a numberof components, modules, or mechanisms. Modules may constitute eithersoftware modules (e.g., code embodied on a machine-readable medium or ina transmission signal) or hardware modules. A hardware module is atangible unit capable of performing certain operations and may beconfigured or arranged in a certain manner. In example embodiments, oneor more computer systems (e.g., a standalone, client or server computersystem) or one or more hardware modules of a computer system (e.g., aprocessor or a group of processors) may be configured by software (e.g.,an application or application portion) as a hardware module thatoperates to perform certain operations as described herein.

In various embodiments, a hardware module may be implementedmechanically or electronically. For example, a hardware module maycomprise dedicated circuitry or logic that is permanently configured(e.g., as a special-purpose processor, such as a field programmable gatearray (FPGA) or an application-specific integrated circuit (ASIC)) toperform certain operations. A hardware module may also compriseprogrammable logic or circuitry (e.g., as encompassed within ageneral-purpose processor or other programmable processor) that istemporarily configured by software to perform certain operations. Itwill be appreciated that the decision to implement a hardware modulemechanically, in dedicated and permanently configured circuitry, or intemporarily configured circuitry (e.g., configured by software) may bedriven by cost and time considerations.

Accordingly, the term “hardware module” should be understood toencompass a tangible entity, be that an entity that is physicallyconstructed, permanently configured (e.g., hardwired) or temporarilyconfigured (e.g., programmed) to operate in a certain manner and/or toperform certain operations described herein. Considering embodiments inwhich hardware modules are temporarily configured (e.g., programmed),each of the hardware modules need not be configured or instantiated atany one instance in time. For example, where the hardware modulescomprise a general-purpose processor configured using software, thegeneral-purpose processor may be configured as respective differenthardware modules at different times. Software may accordingly configurea processor, for example, to constitute a particular hardware module atone instance of time and to constitute a different hardware module at adifferent instance of time.

Hardware modules can provide information to, and receive informationfrom, other hardware modules. Accordingly, the described hardwaremodules may be regarded as being communicatively coupled. Where multipleof such hardware modules exist contemporaneously, communications may beachieved through signal transmission (e.g., over appropriate circuitsand buses) that connect the hardware modules. In embodiments in whichmultiple hardware modules are configured or instantiated at differenttimes, communications between such hardware modules may be achieved, forexample, through the storage and retrieval of information in memorystructures to which the multiple hardware modules have access. Forexample, one hardware module may perform an operation and store theoutput of that operation in a memory device to which it iscommunicatively coupled. A further hardware module may then, at a latertime, access the memory device to retrieve and process the storedoutput. Hardware modules may also initiate communications with input oroutput devices, and can operate on a resource (e.g., a collection ofinformation).

The various operations of example methods described herein may beperformed, at least partially, by one or more processors that aretemporarily configured (e.g., by software) or permanently configured toperform the relevant operations. Whether temporarily or permanentlyconfigured, such processors may constitute processor-implemented modulesthat operate to perform one or more operations or functions. The modulesreferred to herein may, in some example embodiments, compriseprocessor-implemented modules.

Similarly, the methods described herein may be at least partiallyprocessor-implemented. For example, at least some of the operations of amethod may be performed by one or processors or processor-implementedmodules. The performance of certain of the operations may be distributedamong the one or more processors, not only residing within a singlemachine, but deployed across a number of machines. In some exampleembodiments, the processor or processors may be located in a singlelocation (e.g., within a home environment, an office environment or as aserver farm), while in other embodiments the processors may bedistributed across a number of locations.

The one or more processors may also operate to support performance ofthe relevant operations in a “cloud computing” environment or as a“software as a service” (SaaS). For example, at least some of theoperations may be performed by a group of computers (as examples ofmachines including processors), with these operations being accessiblevia a network (e.g., the Internet) and via one or more appropriateinterfaces (e.g., APIs).

Electronic Apparatus and System

Example embodiments may be implemented in digital electronic circuitry,or in computer hardware, firmware, software, or in combinations of them.Example embodiments may be implemented using a computer program product,for example, a computer program tangibly embodied in an informationcarrier, for example, in a machine-readable medium for execution by, orto control the operation of, data processing apparatus, for example, aprogrammable processor, a computer, or multiple computers.

A computer program can be written in any form of programming language,including compiled or interpreted languages, and it can be deployed inany form, including as a stand-alone program or as a module, subroutine,or other unit suitable for use in a computing environment. A computerprogram can be deployed to be executed on one computer or on multiplecomputers at one site or distributed across multiple sites andinterconnected by a communication network.

In example embodiments, operations may be performed by one or moreprogrammable processors executing a computer program to performfunctions by operating on input data and generating output. Methodoperations can also be performed by, and apparatus of exampleembodiments may be implemented as, special purpose logic circuitry(e.g., a FPGA or an ASIC).

The computing system can include clients and servers. A client andserver are generally remote from each other and typically interactthrough a communication network. The relationship of client and serverarises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other. Inembodiments deploying a programmable computing system, it will beappreciated that both hardware and software architectures requireconsideration. Specifically, it will be appreciated that the choice ofwhether to implement certain functionality in permanently configuredhardware (e.g., an ASIC), in temporarily configured hardware (e.g., acombination of software and a programmable processor), or a combinationof permanently and temporarily configured hardware may be a designchoice. Below are set out hardware (e.g., machine) and softwarearchitectures that may be deployed, in various example embodiments.

Example Machine Architecture and Machine-Readable Medium

FIG. 8 is a block diagram of machine in the example form of a computersystem 8000 within which instructions, for causing the machine toperform any one or more of the methodologies discussed herein, may beexecuted. For example, the various components of FIG. 3 may be orcontain one or more of the components described in FIG. 8. Inalternative embodiments, the machine operates as a standalone device ormay be connected (e.g., networked) to other machines. In a networkeddeployment, the machine may operate in the capacity of a server or aclient machine in server-client network environment, or as a peermachine in a peer-to-peer (or distributed) network environment. Themachine may be a personal computer (PC), a notebook PC, a dockingstation, a wireless access point, a tablet PC, a set-top box (STB), aPDA, a cellular telephone, a web appliance, a network router, switch orbridge, or any machine capable of executing instructions (sequential orotherwise) that specify actions to be taken by that machine. Further,while only a single machine is illustrated, the term “machine” shallalso be taken to include any collection of machines that individually orjointly execute a set (or multiple sets) of instructions to perform anyone or more of the methodologies discussed herein. The machine maycontain components not shown in FIG. 8 or only a subset of thecomponents shown in FIG. 8.

The example computer system 8000 includes a processor 8002 (e.g., acentral processing unit (CPU), a graphics processing unit (GPU) orboth), a main memory 8004 and a static memory 8006, which communicatewith each other via a bus 8008. The computer system 8000 may furtherinclude a video display unit 8010 (e.g., a liquid crystal display (LCD)or a cathode ray tube (CRT)). The computer system 8000 also includes analphanumeric input device 8012 (e.g., a keyboard), a user interface (UI)navigation device 8014 (e.g., a mouse), a disk drive unit 8016, a signalgeneration device 8018 (e.g., a speaker) and a network interface device8020.

Machine-Readable Medium

The disk drive unit 8016 includes a machine-readable medium 8022 onwhich is stored one or more sets of instructions and data structures(e.g., software) 8024 embodying or used by any one or more of themethodologies or functions described herein. The instructions 8024 mayalso reside, completely or at least partially, within the main memory8004, static memory 8006, and/or within the processor 8002 duringexecution thereof by the computer system 8000, the main memory 8004 andthe processor 8002 also constituting machine-readable media.

While the machine-readable medium 8022 is shown in an example embodimentto be a single medium, the term “machine-readable medium” may include asingle medium or multiple media (e.g., a centralized or distributeddatabase, and/or associated caches and servers) that store the one ormore instructions or data structures. The term “machine-readable medium”shall also be taken to include any tangible medium that is capable ofstoring, encoding or carrying instructions for execution by the machineand that cause the machine to perform any one or more of themethodologies of the present invention, or that is capable of storing,encoding or carrying data structures used by or associated with suchinstructions. The term “machine-readable medium” shall accordingly betaken to include, but not be limited to, solid-state memories, andoptical and magnetic media. Specific examples of machine-readable mediainclude non-volatile memory, including by way of example, semiconductormemory devices (e.g., Erasable Programmable Read-Only Memory (EPROM),Electrically Erasable Programmable Read-Only Memory (EEPROM)) and flashmemory devices; magnetic disks such as internal hard disks and removabledisks; magneto-optical disks; and CD-ROM and DVD-ROM disks.

Transmission Medium

The instructions 8024 may further be transmitted or received over acommunications network 8026 using a transmission medium. Theinstructions 8024 may be transmitted using the network interface device8020 and any one of a number of well-known transfer protocols (e.g.,HTTP). Examples of communication networks include a LAN, a WAN, theInternet, mobile telephone networks, Plain Old Telephone (POTS)networks, and wireless data networks (e.g., WiFi and WiMax networks).The term “transmission medium” shall be taken to include any intangiblemedium that is capable of storing, encoding or carrying instructions forexecution by the machine, and includes digital or analog communicationssignals or other intangible media to facilitate communication of suchsoftware. Network interface 8020 may wirelessly transmit data and mayinclude an antenna.

Other Notes and Examples

Although the present invention has been described with reference tospecific example embodiments, it will be evident that variousmodifications and changes may be made to these embodiments withoutdeparting from the broader spirit and scope of the invention.Accordingly, the specification and drawings are to be regarded in anillustrative rather than a restrictive sense.

Example 1

A method of providing a bookmarking service on a social networkingservice, the method including receiving, over a network, an indicationthat a member of the social networking service interacted with an itemof content; associating the item of content with a skill using acomputer processor; and storing an indication in a storage device thatthe member interacted with the item of content and the skill associatedwith the item of content.

Example 2

The method of example 1, including providing an interface to the memberwhich presents information on the item of content and presents theassociated skill.

Example 3

The method of any one of examples 1-2, comprising: receiving anindication that a second member of the social networking serviceinteracted with a second item of content; associating the second item ofcontent with the skill; determining that the member has not interactedwith the second item of content; providing a recommendation to themember to interact with the second item of content.

Example 4

The method of any one of examples 1-3, comprising: increasing a skillrank of the member for the skill associated with the item of content.

Example 5: The method of any one of examples 1-4, wherein associatingthe item of content with a skill comprises: computing a term inversedocument frequency for a plurality of terms in the item of content;comparing the term inverse document frequency for the plurality of termsin the item of content with a plurality of common terms associated witha plurality of standardized skills; calculating a probability that thedocument is associated with one of the plurality of skills, based uponthe term inverse document frequency for the plurality of terms in theitem of content and the plurality of common terms associated with theone of the plurality of skills.

Example 6

The method of any one of examples 1-5, comprising: receiving anindication from the member to recommend the item of content to a secondmember, the second member and the first member being connected; andpresenting a recommendation to the second member.

Example 7

The method of any one of examples 1-6, comprising: storing informationabout the item of content along with the associated skill in the storagedevice.

Example 8

A system for providing a bookmarking service on a social networkingservice, the system comprising: a communications module configured to:receive, over a network, an indication that a member of the socialnetworking service interacted with an item of content; and a contentprocessing module configured to: associate the item of content with askill using a computer processor; and store an indication in a storagedevice that the member interacted with the item of content and the skillassociated with the item of content.

Example 9

The system of example 8, comprising a customization module configuredto: provide an interface to the member which presents information on theitem of content and presents the associated skill.

Example 10

The system of any one of examples 8-9, wherein the communications moduleis configured to: receive an indication that a second member of thesocial networking service interacted with a second item of content; thecontent processing module is configured to: associate the second item ofcontent with the skill; and the system comprises a customization moduleconfigured to: determine that the member has not interacted with thesecond item of content; and provide a recommendation to the member tointeract with the second item of content.

Example 11

The system of any one of examples 8-10, comprising a customizationmodule configured to increase a skill rank of the member for the skillassociated with the item of content.

Example 12

The system of any one of examples 8-11, wherein the content processingmodule is configured to associate the item of content with a skill by atleast: computing a term inverse document frequency for a plurality ofterms in the item of content; comparing the term inverse documentfrequency for the plurality of terms in the item of content with aplurality of common terms associated with a plurality of standardizedskills; calculating a probability that the document is associated withone of the plurality of skills, based upon the term inverse documentfrequency for the plurality of terms in the item of content and theplurality of common terms associated with the one of the plurality ofskills.

Example 13

The system of any one of examples 8-12, comprising a customizationmodule configured to: receive an indication from the member to recommendthe item of content to a second member, the second member and the firstmember being connected; and present a recommendation to the secondmember.

Example 14

The system of any one of examples 8-13, wherein the processing module isconfigured to: store information about the item of content along withthe associated skill in the storage device.

Example 15

A machine readable medium that stores instructions which when performedby a machine, cause the machine to perform operations comprising:receiving, over a network, an indication that a member of a socialnetworking service interacted with an item of content; associating theitem of content with a skill using a computer processor; and storing anindication in a storage device that the member interacted with the itemof content and the skill associated with the item of content.

Example 16

The machine readable medium of example 15, wherein the instructionscomprise instructions which when performed by the machine, cause themachine to: provide an interface to the member which presentsinformation on the item of content and presents the associated skill.

Example 17

The machine readable medium of any one of examples 15-16, wherein theinstructions comprise instructions which when performed by the machine,cause the machine to: receive an indication that a second member of thesocial networking service interacted with a second item of content;associate the second item of content with the skill; determine that themember has not interacted with the second item of content; provide arecommendation to the member to interact with the second item ofcontent.

Example 18

The machine readable medium of any one of examples 15-17, wherein theinstructions comprise instructions which when performed by the machine,cause the machine to: increase a skill rank of the member for the skillassociated with the item of content.

Example 19

The machine readable medium of any one of examples 15-18, wherein theinstructions for associating the item of content with a skill compriseinstructions which when performed by the machine cause the machine to:compute a term inverse document frequency for a plurality of terms inthe item of content; compare the term inverse document frequency for theplurality of terms in the item of content with a plurality of commonterms associated with a plurality of standardized skills; calculate aprobability that the document is associated with one of the plurality ofskills, based upon the term inverse document frequency for the pluralityof terms in the item of content and the plurality of common termsassociated with the one of the plurality of skills.

Example 20

The machine readable medium of any one of examples 15-19, wherein theinstructions comprise instructions which when performed by the machine,cause the machine to: receive an indication from the member to recommendthe item of content to a second member, the second member and the firstmember being connected; and present a recommendation to the secondmember.

Example 21

The machine readable medium of any one of examples 15-20, wherein theinstructions comprise instructions which when performed by the machine,cause the machine to: store information about the item of content alongwith the associated skill in the storage device.

The invention claimed is:
 1. A method of providing a bookmarking serviceintegrated with a social networking service, the method comprising:receiving, over a network, an indication that a member of the socialnetworking service interacted with an item of content; associating theitem of content with a skill using a computer processor; and storing anindication in a storage device that the member interacted with the itemof content and the skill associated with the item of content.
 2. Themethod of claim 1, comprising: providing an interface to the memberwhich presents information on the item of content and presents theassociated skill.
 3. The method of claim 1, comprising: receiving anindication that a second member of the social networking serviceinteracted with a second item of content; associating the second item ofcontent with the skill; determining that the member has not interactedwith the second item of content; providing a recommendation to themember to interact with the second item of content.
 4. The method ofclaim 1, comprising: increasing a skill rank of the member for the skillassociated with the item of content.
 5. The method of claim 1, whereinassociating the item of content with a skill comprises: computing a terminverse document frequency for a plurality of terms in the item ofcontent; comparing the term inverse document frequency for the pluralityof terms in the item of content with a plurality of common termsassociated with a plurality of standardized skills; calculating aprobability that the document is associated with one of the plurality ofskills, based upon the term inverse document frequency for the pluralityof terms in the item of content and the plurality of common termsassociated with the one of the plurality of skills.
 6. The method ofclaim 1, comprising: receiving an indication from the member torecommend the item of content to a second member, the second member andthe first member being connected; and presenting a recommendation to thesecond member.
 7. The method of claim 1, comprising: storing informationabout the item of content along with the associated skill in the storagedevice.
 8. A system for providing a bookmarking service integrated witha social networking service, the system comprising: a communicationsmodule configured to: receive, over a network, an indication that amember of the social networking service interacted with an item ofcontent; and a content processing module configured to: associate theitem of content with a skill using a computer processor; and store anindication in a storage device that the member interacted with the itemof content and the skill associated with the item of content.
 9. Thesystem of claim 8, comprising a customization module configured to:provide an interface to the member which presents information on theitem of content and presents the associated skill.
 10. The system ofclaim 8, wherein the communications module is configured to: receive anindication that a second member of the social networking serviceinteracted with a second item of content; the content processing moduleis configured to: associate the second item of content with the skill;and the system comprises a customization module configured to: determinethat the member has not interacted with the second item of content; andprovide a recommendation to the member to interact with the second itemof content.
 11. The system of claim 8, comprising a customization moduleconfigured to increase a skill rank of the member for the skillassociated with the item of content.
 12. The system of claim 8, whereinthe content processing module is configured to associate the item ofcontent with a skill by at least: computing a term inverse documentfrequency for a plurality of terms in the item of content; comparing theterm inverse document frequency for the plurality of terms in the itemof content with a plurality of common terms associated with a pluralityof standardized skills; calculating a probability that the document isassociated with one of the plurality of skills, based upon the terminverse document frequency for the plurality of terms in the item ofcontent and the plurality of common terms associated with the one of theplurality of skills.
 13. The system of claim 8, comprising acustomization module configured to: receive an indication from themember to recommend the item of content to a second member, the secondmember and the first member being connected; and present arecommendation to the second member.
 14. The system of claim 8, whereinthe processing module is configured to: store information about the itemof content along with the associated skill in the storage device.
 15. Amachine readable medium that stores instructions which when performed bya machine, cause the machine to perform operations comprising:receiving, over a network, an indication that a member of a socialnetworking service interacted with an item of content; associating theitem of content with a skill using a computer processor; and storing anindication in a storage device that the member interacted with the itemof content and the skill associated with the item of content.
 16. Themachine readable medium of claim 15, wherein the instructions compriseinstructions which when performed by the machine, cause the machine to:provide an interface to the member which presents information on theitem of content and presents the associated skill.
 17. The machinereadable medium of claim 15, wherein the instructions compriseinstructions which when performed by the machine, cause the machine to:receive an indication that a second member of the social networkingservice interacted with a second item of content; associate the seconditem of content with the skill; determine that the member has notinteracted with the second item of content; provide a recommendation tothe member to interact with the second item of content.
 18. The machinereadable medium of claim 15, wherein the instructions compriseinstructions which when performed by the machine, cause the machine to:increase a skill rank of the member for the skill associated with theitem of content.
 19. The machine readable medium of claim 15, whereinthe instructions for associating the item of content with a skillcomprise instructions which when performed by the machine cause themachine to: compute a term inverse document frequency for a plurality ofterms in the item of content; compare the term inverse documentfrequency for the plurality of terms in the item of content with aplurality of common terms associated with a plurality of skills;calculate a probability that the document is associated with one of theplurality of standardized skills, based upon the term inverse documentfrequency for the plurality of terms in the item of content and theplurality of common terms associated with the one of the plurality ofskills.
 20. The machine readable medium of claim 15, wherein theinstructions comprise instructions which when performed by the machine,cause the machine to: receive an indication from the member to recommendthe item of content to a second member, the second member and the firstmember being connected; and present a recommendation to the secondmember.
 21. The machine readable medium of claim 15, wherein theinstructions comprise instructions which when performed by the machine,cause the machine to: store information about the item of content alongwith the associated skill in the storage device.